3D Graphics Programming with QuickDraw 3D 1.5.4
Contents
Preface
Introduction to QuickDraw 3D
Contents
About QuickDraw 3D
Modeling and Rendering
Interacting
Extending QuickDraw 3D
Naming Conventions
Retained and Immediate Modes
Using QuickDraw 3D
Compiling Your Application
Initializing and Terminating QuickDraw 3D
Creating a Model
Configuring a Window
Creating Lights
Creating a Draw Context
Creating a Camera
Creating a View
Rendering a Model
QuickDraw 3D Reference
Constants
QuickDraw 3D Routines
QuickDraw 3D Errors, Warnings, and Notices
3D Viewer
Contents
About the 3D Viewer
Controller Strips
Badges
Drag and Drop
Using the 3D Viewer
Checking for the 3D Viewer
Checking the Version of the 3D Viewer
Creating a Viewer
Attaching Data to a Viewer
Handling Viewer Events
3D Viewer Reference
Constants
3D Viewer Routines
Windows-Specific API
Application-Defined Routine
QuickDraw 3D Objects
Contents
About QuickDraw 3D Objects
The QuickDraw 3D Class Hierarchy
Reference Counts
Using QuickDraw 3D Objects
Determining the Type of a QuickDraw 3D Object
Defining an Object Metahandler
How Your Metahandler is Called
Defining Custom Elements
QuickDraw 3D Objects Reference
QuickDraw 3D Objects Routines
Creating Custom Object Subclasses
Custom Class Metahandlers
Object Types and Names
Data Structures Associated With a Class
Registering a Custom Class
Registering a Shared Library
Creating a Hierarchy
Object Methods
Class Routines
Class Methods
Object Errors, Warnings, and Notices
Geometric Objects
Contents
About Geometric Objects
Attributes of Geometric Objects
Polyhedral Primitives
NURB Curves and Patches
Surface Parameterizations
Using Geometric Objects
Creating and Deleting Geometric Objects
Using Polyhedrons
Using Trimeshes
Using Meshes
Using Trigrids
Geometric Objects Reference
Constants
Data Structures
Geometric Objects Routines
Geometry Errors, Warnings, and Notices
Attribute Objects
Contents
About Attribute Objects
Types of Attributes and Attribute Sets
Attribute Inheritance
Using Attribute Objects
Creating and Configuring Attribute Sets
Iterating Through an Attribute Set
Defining Custom Attribute Types
Attribute Objects Reference
Constants
Attribute Objects Routines
Adding Application-Defined Attribute and Element Types
Attribute Errors
Style Objects
Contents
About Style Objects
Backfacing Styles
Interpolation Styles
Fill Styles
Highlight Styles
Subdivision Styles
Orientation Styles
Shadow-Receiving Styles
Picking ID Styles
Picking Parts Styles
Anti-Alias Style
Using Style Objects
Style Objects Reference
Data Structures
Style Objects Routines
Transform Objects
Contents
About Transform Objects
Spaces
Types of Transforms
Transform Objects Reference
Data Structures
Transform Objects Routines
Transform Errors, Warnings, and Notices
Light Objects
Contents
About Light Objects
Ambient Light
Directional Lights
Point Lights
Spot Lights
Using Light Objects
Creating a Light
Manipulating Lights
Light Objects Reference
Constants
Data Structures
Light Objects Routines
Light Notices
Camera Objects
Contents
About Camera Objects
Camera Placements
Camera Ranges
View Planes and View Ports
Orthographic Cameras
View Plane Cameras
Aspect Ratio Cameras
Using Camera Objects
Camera Objects Reference
Data Structures
Camera Objects Routines
Camera Errors
Group Objects
Contents
About Group Objects
Group Types
Group Positions
Group State Flags
Using Group Objects
Creating Groups
Accessing Objects by Position
Group Objects Reference
Constants
Group Objects Routines
Extending Group Objects
Group Errors
Renderer Objects
Contents
About Renderer Objects
Types of Renderers
Renderer Features
Constructive Solid Geometry
Transparency
Using Renderer Objects
Renderer Objects Reference
Constants
Data Structures
Renderer Object Routines
Application-Defined Routines
Renderer Methods
Submit Method
Configuration Methods
Update Methods
Drawing State Methods
Push and Pop Methods
Renderer Cull Method
Draw Region Interface
Obtaining a DrawRegion
Draw Region Validation
Draw Region Services
Starting and Ending Draw Regions
Draw Region Descriptor
Draw Region Location and Dimensions
Renderer-Private Data in Draw Regions
Renderer Errors
Draw Context Objects
Contents
About Draw Context Objects
Macintosh Draw Contexts
Pixmap Draw Contexts
Windows Draw Contexts
Using Draw Context Objects
Creating and Configuring a Draw Context
Using Double Buffering
Draw Context Objects Reference
Data Structures
Draw Context Objects Routines
Draw Context Errors, Warnings, and Notices
View Objects
Contents
About View Objects
Using View Objects
Creating and Configuring a View
Rendering an Image
View Objects Reference
View Objects Routines
Application-Defined Routines
View Errors, Warnings, and Notices
Shader Objects
Contents
About Shader Objects
Surface-Based Shaders
Illumination Models
Textures
Using Shader Objects
Using Illumination Shaders
Using Texture Shaders
Creating Storage Pixmaps
Handling uv Values Outside the Valid Range
Shader Objects Reference
Constants
Shader Objects Routines
Pick Objects
Contents
About Pick Objects
Types of Pick Objects
Hit Identification
Hit Sorting
Hit Information
Using Pick Objects
Handling Object Picking
Handling Mesh Part Picking
Picking in Immediate Mode
Pick Objects Reference
Constants
Data Structures
Pick Objects Routines
Picking Warnings
Storage Objects
Contents
About Storage Objects
Using Storage Objects
Creating a Storage Object
Getting and Setting Storage Object Information
Storage Objects Reference
Storage Objects Routines
Storage Object Errors
File Objects
Contents
About File Objects
File I/O
File Types
View Hints
Using File Objects
Creating a File Object
Reading Data from a File Object
Writing Data to a File Object
Metafile External References
File Objects Reference
Constants
Data Structures
File Objects Routines
Custom File Object Routines
Application-Defined Routines
File System Errors, Warnings, and Notices
Pointing Device Manager
Contents
About the Pointing Device Manager
Controllers
Controller States
Trackers
Using the QuickDraw 3D Pointing Device Manager
Controlling a Camera Position With a Pointing Device
QuickDraw 3D Pointing Device Manager Reference
Data Structures
QuickDraw 3D Pointing Device Manager Routines
Application-Defined Routines
Pointing Device Errors
Error Manager
Contents
About the Error Manager
Using the Error Manager
Error Manager Reference
Error Manager Routines
Application-Defined Routines
Mathematical Utilities
Contents
About the Mathematical Utilities
QuickDraw 3D Mathematical Utilities Reference
Data Structures
QuickDraw 3D Mathematical Utilities
Color Utilities
Contents
About the Color Utilities
Using the QuickDraw 3D Color Utilities
QuickDraw 3D Color Utilities Reference
Data Structures
QuickDraw 3D Color Utilities
3D Metafile 1.5 Reference
Contents
Introduction
Basic Data Types
Unsigned Integer Data Types
Signed Integer Data Types
Floating-Point Integer Data Types
Strings
Raw Data
Symbolic Constants
Defined 3D Data Types
Two-Dimensional Points
Three-Dimensional Points
Three-Dimensional Rational Points
Four-Dimensional Rational Points
Color Data Types
Two-Dimensional Vectors
Three-Dimensional Vectors
Parameterizations
Tangents
Matrices
Abstract Data Types
Object Type
Size
File Pointers
Metafile Object Specifications
Special Metafile Objects
Examples of Metafile Structures
String Objects
Geometric Objects
Attributes
Attribute Sets
Attribute Set Lists
Styles
Transforms
Lights
Cameras
Groups
Renderers
Shaders
View Objects
Unknown Objects
QuickDraw 3D RAVE
Contents
About QuickDraw 3D RAVE
Drawing Engines
Draw Contexts
Using QuickDraw 3D RAVE
Specifying a Virtual Device
Finding a Drawing Engine
Creating and Configuring a Draw Context
Drawing in a Draw Context
Using a Draw Context as a Cache
Using a Texture Map Alpha Channel
Rendering With Antialiasing
Writing a Drawing Engine
Writing Public Draw Context Methods
Writing Private Draw Context Methods
Handling Gestalt Selectors
Registering a Drawing Engine
Supporting OpenGL Hardware
QuickDraw 3D RAVE Reference
Constants
Data Structures
QuickDraw 3D RAVE Routines
Application-Defined Routines
Summary of QuickDraw 3D RAVE
Bibliography
Glossary
© 1997 Apple Computer, Inc.